package com.liuchuanzheng.lcz_wanandroid.base

import android.app.Activity
import android.content.Context
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.gyf.immersionbar.ImmersionBar
import com.liuchuanzheng.lcz_wanandroid.R

/**
 * @author: 刘传政
 * @date: 2021/6/25 14:34
 * QQ:1052374416
 * 作用:基类activity
 * 注意事项:
 */
abstract class BaseActivity : AppCompatActivity() {

    lateinit var mContext: Context
    lateinit var mActivity: Activity


    /**
     * 因为系统自带的设置view方法有很多种,id,view都可以.所以这里不像
     * 大家都用id的封装方式,那是限制了自己
     * 建议使用ViewBinding的方式.快捷方便
     */
    abstract fun setContentView()

    /**
     * 这里不过多区分initview与initdata等。因为他们的顺序不是固定的
     * 避免过度设计
     */
    abstract fun doYourself()
    override fun onCreate(savedInstanceState: Bundle?) {
        mContext = this
        mActivity = this
        super.onCreate(savedInstanceState)
        setContentView()
        initStatusColor()
        doYourself()
    }


    /**
     * 默认设置一下状态栏颜色,如果不满意可以自己再设置一遍,或者重写此方法
     */
    fun initStatusColor() {
        ImmersionBar.with(this)
            //状态栏颜色
            .statusBarColor(R.color.purple_200)
            //状态栏文字颜色
            .statusBarDarkFont(false)
            //使用该属性必须指定状态栏的颜色，不然状态栏透明，很难看. false表示布局嵌入状态栏。true表示布局避开状态栏
            .fitsSystemWindows(true)
            .init()
    }
}